/*
 *  Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
 *
 *  This program and the accompanying materials are made available under the
 *  terms of the Apache License, Version 2.0 which is available at
 *  https://www.apache.org/licenses/LICENSE-2.0
 *
 *  SPDX-License-Identifier: Apache-2.0
 *
 *  Contributors:
 *       Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - initial API and implementation
 *
 */

package org.eclipse.edc.spi.system.apiversion;

import java.util.List;
import java.util.Map;

/**
 * Collects version information from the runtime. API modules can add {@link VersionRecord} items to represent their version.
 * Extensions, that register API controllers should also add a {@link VersionRecord} using their context alias.
 */
public interface ApiVersionService {
    /**
     * Register a {@link VersionRecord}
     *
     * @param name   The name of the API, typically this is the API's context alias
     * @param record The version record
     */
    void addRecord(String name, VersionRecord record);

    Map<String, List<VersionRecord>> getRecords();
}
